The Internet is a well-known, global network of cooperatively interconnected computer networks. The World Wide Web portion of the Internet is a collection of server computers (referred to as “web sites”) on the Internet, which store hyper text transfer language “HTML” documents that can be publicly accessed by computer users having a connection to the Internet.
Most basically, the Internet comprises a network of computer networks capable of transmitting messages to one another using a common set of operating rules, called communication protocols. Networks comprise addressable devices (computers) connected or “linked” by communication channels. More specifically, the World Wide Web—comprises an amalgamation of linked-together “web pages” accessible by linked web-based users, with the web pages typically presenting information to the user in a graphical fashion.
World Wide Web (“web”) is used herein to refer generally to both (i) a distributed collection of interlinked, user-viewable Hypertext documents (commonly referred to as web documents or web pages) that are accessible via the Internet, and (ii) the client and server software components that provide user access to such documents using standardized Internet protocols. Currently, the primary standard protocol for allowing applications to locate and acquire web documents is hypertext transfer protocol (HTTP), and the web pages are encoded using HTML.
However, the terms “web” and “World Wide Web” are intended to encompass future markup languages and transport protocols that may be used in place of (or in addition to) HTML and HTTP.
A user at an individual web-based device (e.g., a workstation) that wishes to access a web page on the Internet typically does so using a graphical user interface software application known as a “web browser.” A variety of commercial web browsers are currently available. Well-known web browsers include Netscape's Navigator and Microsoft's Internet Explorer. Web browsers function to initiate connections via the Internet to responsive computers known as “web servers” and to receive information from the web servers that is displayed on the user's workstation. Web browsers accordingly support HTTP, the current underlying communications protocol used by the Internet. In addition, web browsers may support other protocols, such as Wireless Application Protocol (WAP) as well as protocols currently used or yet to be developed.
To connect to a desired web site having retrievable information, a user typically enters a network address designated as a Uniform Resource Locator (URL) into the web browser. The URL identifies both the location of the web site and one or more pages of information contained at that web site, the web site being supported by a particular web server. The web page that a URL refers to can be pre-existing or can be generated on demand when requested, depending on the web page in question. At each URL, text, graphics, or other information may be stored on the web server in a predefined hierarchy. The URL address may be supplied by the user in a variety of ways, to include direct keyboard entry of the address, selection of a previously stored “bookmarked” address, or “clicking” on an appropriate hyper-text link appearing on a web browser control bar or on a displayed web page.
Using the URL, the web browser sends a command in the form of a retrieval request to the web server identified in the URL address. For example, when a URL is entered into a web browser, the web browser sends an HTTP command to the designated web server directing the web server to fetch (download), and then transmit, the requested data (web page) identified by the URL. Information displayed to the user is typically organized into pages that are constructed using HTML or other, similar languages such as XML, etc. The transfer of information between the web browser and the web server is done in the context of a client/server relationship with the web browser being a client of the web server.
Most commonly, networks rely on client/server architectures to perform network operations. A mainframe computer, for instance, communicates with a series of client workstations or “dummy” terminals over a series of coextensive interconnections. The interconnections that connect the mainframe with workstations are implemented using any of a variety of technologies, including various forms of physical medium, such as copper wire (“twisted-pair”), coaxial cable and fiber optic cable, and wireless, electromagnetic transmission either at low-level, such as microwave links and cellular mobile networks, or via satellite.
Typically, “clients” are applications that run on workstations and rely on mainframe/servers to perform certain operations. For example, an e-mail client is an application that enables a workstation to send and receive e-mail via a local area network (LAN) server and an e-mail server. The term “server” is thus used herein to denote a linked computing device or group of such devices acting as a single unit to provide centralized services to one or more workstations. Clients may rely on servers for any number of functions, including interconnection with other devices, web access, resources (such as database storage of files), and, in some cases, processing power. Web servers respond to a web browser's request by transmitting a web page, or other types of web content. Web content, as used herein, is a set of executable instructions a server serves to a client and which is intended to be executed by the client so as to provide the client with certain functionality.
In order to ensure proper routing of messages between networked devices, messages are first broken up into data packets, each of which receives a destination address according to a consistent protocol, and which are reassembled upon receipt by the target computer. Commonly accepted protocols for use over the Internet are Internet Protocol (IP), which dictates routing information, and Transmission Control Protocol (TCP), according to which messages are broken up into IP packets for transmission, collection, and reassembly.
Given the advances in network technology, a demand for software and systems capable of taking full advantage of these advancements is growing. In this regard, many organizations dependent on information technology are presently attempting to manage complex network environments (e.g., distributed environments) that incorporate diverse hardware, software, applications, networks, and database systems. For example, the microprocessors of devices in a distributed environment may be totally dissimilar from each other. Also, device components of distributed environments often run entirely different operating systems and are entirely independent of each other but strive to cooperate in the sharing of data. The communications protocols used by such distributed environments thus tend to be industry standards, such as Systems Network Architecture™ (“SNA”) and TCP/IP. Still, modes of cooperation between networked devices are far from optimal.
Thus, there has been an increasing demand for software and systems capable of fully integrating and optimizing use of these disparate components. Moreover, it would be desirable for these integrated systems, documents, and software to be hardware independent, support multiple users, and be based on a distributed architecture.
One particular situation where hardware independence would be desirable is printing via device drivers. A conventional, but inefficient, method of controlling and managing the flow of data to and from diverse input/output (I/O) devices in a distributed environment is through the use of device drivers. Device drivers are software programs that act as an interface between the device and programs that use the device. Generally, each device, such as a particular printer, has a set of specialized commands translatable by a driver for that device. In contrast, most programs access devices by using generic commands. The driver, therefore, accepts generic commands from a program and then translates them into specialized commands for the device.
Universal device drivers have been created in an effort to eliminate or reduce the numerous differing device drivers required by various operating systems in running various peripheral devices. Generally, universal drivers incorporate most of the code necessary for devices in a particular class of devices (such as printers or modems) to communicate with the appropriate operating system components (such as the printer or communications subsystems). Most often, universal drivers are used in combination with mini-drivers, which contain any additional instructions needed to operate a specific device.
However, universal device drivers often lack true platform independence in that the OS specific device drivers are programmed for preexisting, but not newer, peripherals. Additionally, while the device driver core is operating system independent, the OS specific device drivers are not. Thus, the OS specific device drivers often have to be replaced in order to conform to a newly installed operating system. Also, often, the operating system independent driver still must include information regarding peripheral device operation and peripheral specific data object. Thus, universal drivers do not completely solve the problems of software application and platform independence in the operation of networked peripherals.
A second area in which the resources of a distributed environment are not efficiently utilized is in the realm of web-based image retrieval, manipulation, and utilization. Presently, systems and services exist which allow web users to extract and share various imaging information over the Internet.
On-line information systems typically include one computer system (the server) that makes information available so that other computer systems (the clients) can access the information. The server manages access to the information, which can be structured as a set of independent on-line services. The server and client communicate via messages conforming to a communication protocol and sent over a communication channel such as a computer network or through a dial-up connection. Typical uses for on-line services include document viewing, electronic commerce, directory lookup, on-line classified advertisements, reference services, electronic bulletin boards, document retrieval, electronic publishing, keyword searching of documents, technical support for products, and directories of on-line services, among others. The service may make the information available free of charge, or for a fee, and may be on publicly accessible or private computer systems.
The user of an on-line service uses a program on the client system to access the information managed by the on-line service. Possible user capabilities include viewing, searching, downloading, printing, and filing the information managed by the server.
U.S. Pat. No. 5,870,552 to Dozier, et al. (“Dozier”), teaches a development platform technology for publishing hypermedia documents across wide area networks (WAN). Generally, Dozier addresses the problem of editing hypermedia documents on WAN servers for WAN publishing. Dozier notes that it is not generally possible to “open” multiple WAN documents for editing and to transfer text, images, and URL's among those documents in the seamless fashion as is presently done with typical word processors for local computer documents. Also, Dozier notes that current web authoring tools generally do not provide full WYSIWYG (“What You See Is What You Get”) feedback as to HTML markups and hypermedia links. However, Dozier does not teach a method to effectuate sharing of a device/software independent image in a mainframe printing environment.
U.S. Pat. No. 5,793,966 to Amstein et al. (“Amstein”) also teaches a client/server system, using a web server that allows for the creation and maintenance of an on-line service using a client system that remotely causes the server to perform operations required in the authoring process. However, Amstein does not address sharing a device/software independent image in a mainframe printing environment.
U.S. Pat. No. 5,987,480 to Donohue et al. teaches a system and method for delivering documents having dynamic content embedded over the worldwide Internet or a local internet or intranet. More specifically, customized HTTP content is provided based on the identity of the user operating the client computer so that the document is individualized to the user's interests and needs. Donahue does not teach editing, retrieval, and output of a device/software independent image in a mainframe printing environment.
Accordingly, there is a great need for a new development platform for distributed publishing that overcomes the various limitations described above. This need is especially pronounced and important in view of the rapid expansion of interest in the Internet.
Accessing web-based information in a mainframe operating system such as multiple virtual storage (“MVS”) and OS400 systems requires mainframe protocol such as system network architecture to communicate with one current internet protocol, TCP/IP. IBM mainframes running either MVS or VM can run software called TCP/IP for MVS and TCP/IP for VM. These products provide access from other machines running TCP/IP to access the mainframe operating system remotely, usually over a LAN. The software enables the client in a client/server scheme to act as a 3270-series terminal to MVS or VM. File Transfer Protocol (“FTP”) is provided for file transfers. Both TCP/IP software products support SMTP for electronic mail. Enabling TCP/IP protocol across a mainframe computer system may allow for Internet access for terminals connected to the mainframe. The mainframe, software, or other hardware as known in the art may assign IP addresses.
An interconnect controller, which sits between the mainframe and a network may be used to route communications for large systems. The interconnect controller handles high-speed traffic between a mainframe channel and the network to relieve mainframe processing of communications.
Likewise, printing in a mainframe environment is largely controlled by the mainframe. Print jobs are processed by the mainframe computer (acting as the print server) and may be distributed to printers via proprietary high-speed interfaces such as an IBM 370 Channel interface (commonly called “bus and tag”). Otherwise, conventional RS232C interfaces or other communication interfaces may be used. The printer may receive communications from the mainframe by way of a network interface card (“NIC”) or device attached to the printer.
The interface device attaches to the printer and interprets network communications sent in network protocol, such as SNA protocol, by IBM, then transmits page description language (“PDL”) commands that can be executed by the printer. For example, common PDLs include Postscript or PCL printer languages. Typically, in computer operating systems such as Windows™ or OS/2™, print drivers allow correct PDL generation for the desired printer from any program executed on the client. In addition, the interface device may provide information to the mainframe or server concerning printer characteristics or status via network protocol communications.
Alternatively, printing in a mainframe environment may also be accomplished via connection with another network, such as a Novell network that supports mainframe printing capabilities. One such network function is provided by Novell Distributed Printing Services (“NDPS”). NDPS combines conventional functions of a print queue, print server, and printer into one network object, the printer agent. A WAN connection may provide communication between the mainframe and server in the Novell network to accomplish printing. A print job that is sent to the mainframe by way of an application running on the mainframe, is redirected to a NetWare printing queue. Again, the print job is typically sent to a NIC residing in a network printer, which converts the network packets to PDL commands. Printer settings may be sent with the job and interpreted before executing the job, or default print queues with specific printer settings may be employed to fully define the printing operation. However, printing is still limited to the output devices installed and configured for network access.
Furthermore, in networked printing environments, serial communication and architecture is employed. For instance, one print queue is designated for each printer. Also, a specific print driver producing a specific PDL is necessary for printing. At least two significant limitations exist in network configurations with respect to imaging/printing: 1) printed images cannot be shared or manipulated easily; and 2) peripherals are limited to those connected to and configured for the network employed.
In addition, finished projects containing print jobs from different applications cannot be easily integrated prior to printing. Usually, each print job is generated by each application by way of the print driver and sent to a printer, or different printers. This method is inefficient and, furthermore, the disparate print jobs must be manually collated after printing. Although copy/paste functions of operating systems and applications somewhat alleviate this problem, it would be advantageous to assemble a single print job for printing from different applications by selecting files and previous print jobs to comprise the single print job.
Limitations and problems associated with print queues, print drivers, print job configuration and monitoring largely prevent mainframe users from gaining possible benefits of high functional access to peripherals and computing power of the Internet. In addition, hardware and software independence is desirable, because networks as well as the Internet may comprise diverse computer platforms and systems.
As illustrated by the prior art, it is desirable to provide mainframe printing clients with utmost functionality concerning peripherals, computing power, and imaging power available in a networked computing environment. Therefore, it would be of current interest to provide apparatus and methods for sharing imaging information between web-based services and devices in a distributed environment. More specifically, the present invention relates to apparatus and methods for sharing imaging information between web-based services and devices for users of mainframe printing environments.